1. Field of the Invention
This invention relates generally to optical bar code sensing systems, and pertains more particularly to a battery-operated bar code reading system and a circuit for regulating the voltage supplied to such a system.
2. Description of the Prior Art
Over the past decade, significant advances in solid state technology and digital electronics have permitted the development of low cost digital computers which are used in an ever increasing number of industrial and consumer products. One segment of the computer industry which has grown rapidly in recent years is the "home computer" market which encompasses those digital computers which are used, for the most part, for personal rather than commercial applications and which are affordable to a large segment of the consuming public.
With the rapid growth of the computer market, there has been an accompanying growth in the computer software industry which provides computer programs usable with various computers. The number of programs available for most popular home computer models, for instance, has grown at an extremely rapid rate.
There are a number of ways in which a computer user can obtain a new program. First, the user can write the program himself. In many cases, however, this is not practical or desirable because the user either lacks the time or skill to write such a program, or because the program is already commercially available.
Second, the program may be printed in a computer magazine or book. In that case, the user normally has to enter the program through the keyboard of the computer. For many programs, that is a very time-consuming task and is very prone to errors.
Third, many programs are available to computer users is prerecorded form, either on magnetic tape cassettes, or on floppy disks. The tape cassette requires, of course, that the computer user have a tape recorder which can be used to play the cassette and supply signals to the computer through the cassette input port. In the case of the floppy disk, the computer user must have a floppy disk drive in order to transfer the program from the disk to the computer.
Another known way in which information can be stored is in the form of optical bar codes. At the present time, bar codes are used extensively in many fields to store information on products, packages and labels which can be read by machine and provided to a computer. One well-known example is the Uniform Product Code (UPC) which is found on most packages sold in grocery stores. The UPC bar code is read by a scanning system at the checkout counter, and a computer automatically determines the price of the product and provides a cash register receipt listing the product name and price. This eliminates the time-consuming and error prone manual checkout procedure which had been used for many years in grocery stores.
An optical bar code consists of a specific number of what have heretofore been referred to as light elements, modules or pixels, and which herein will be called "cells". Each cell is in the form of either a dark bar ("mark") or a light bar ("space"), the various dark and light bars being arranged parallel to one another. A "mark" represents a "1" and a "space" represents as "0". The bar code data is read by relative movement of the bar code with respect to an optical reader in a direction which is perpendicular to the marks and spaces.
The prerecording of computer programs or data on a printed sheet in the form of lines of optical bar code data is attractive, since it is well suited to mass production techniques, and can conveniently be distributed in magazine and book form. In recording computer information in the form of multiple lines of bar code on printed sheets, it is important to maximize the amount of data stored on a single sheet, so that an entire program or data set can be recorded on a single sheet or on a relatively small number of sheets. The bar codes and bar code readers used in the past, however, have had a much lower data density than is desirable for recording computer programs.
A typical prior art optical bar code uses nine cells to record four bits of information. Each four-bit "character" or "nibble" begins with a "mark", a "space", and a "mark" of single width cells (i.e. binary 101). The remaining six cells are used to designate the four bits of data. In reading the code, the reader must be capable of distinguishing between a single-cell bar containing a single "mark" and a double-cell bar containing two "marks" which are adjacent one another. Similarly, the reader must be able to distinguish between a single-cell bar containing a single "space" and a double-cell bar containing two "spaces" which are adjacent one another. The prior art code uses the "space" between two "marks" (i.e. binary 101) at the beginning of each character to obtain a timing value for a single-cell bar. This timing value is then compared to the time duration of each subsequent "mark" or "space" bar in the character to distinguish between single and double-cell bars.
The above technique has a number of disadvantages. First, it requires nine cells to describe only four bits of data, with the first three cells being used solely for timing purposes.
Second, inaccuracies can occur if the hand-held reader is being accelerated or decelerated at the beginning of the character, or if the reader jerks slightly while the reader is passing over the initial three cells (101) of the character.
Third, in order to enhance the reliability in distinguishing between single and double bars, the prior art optical bar codes have typically required a three-to-one ratio between the physical width of a double bar and a single bar. In other words, a bar formed by two "marks" or two "spaces" adjacent to one another will have a width which is three times the width of a bar formed by a single mark or a single space. While this enhances reliability, it significantly reduces the amount of information which can be stored in a line of optical bar code.
There is a need for an improved optical bar code which achieves a high reliability in the reading of optical bar codes when using a manually moved reader, and which significantly increases the density of information which can be recorded in a line of optical bar code, this latter feature being important as far as the present invention is concerned. The optical bar code of the present invention does not require the three cells at the beginning of each character simply to provide a timing value for measurement of bar widths. As a result, the number of cells required to represent four bits of data can be reduced, thus increasing the amount of information which can be contained in a single line of optical bar code. With the code of the present invention, reliable reading thereof has been achieved with bar widths which are much smaller than those used in conventional bar codes, and with a two-to-one rather than a three-to-one physical width ratio between double and single "marks" or "spaces".